<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>合并拆分</title>
</head>
<body>
    
</body>
</html>
<script>
    //join
    //使用join将数组连接成字符串
    // let arr = [1,'后盾人','hdcms'];
    // console.log(typeof arr.join(','));

    //split方法用于将字符串分割成数组，类似于join方法的反函数
    // let price = "99.88.33";
    // console.log(price.split('.'));

    //concat  连接两个或者多个数组
    // let array = ["hdcms","houdurnen"];
    // let hd = [1,2];
    // let hd1 = [5,6];
    
    // let string = array + ',' + hd;
    // let newArray = string.split(',');
    // console.table(newArray)

    // console.table(array.concat(hd,hd1));

    //也可以使用扩展语法实现连接
    // console.log([...array,...hd,...hd1]);

    // const arr = [1,2,3,4];
    // console.log(arr.copyWithin(2,0,2));
    

    //查找元素
    //indexOf
    // let arr = [7,3,2,8,2,6];
    // console.log(arr.indexOf(12));
    //查找不到，是因为indexOf是属于严格类型约束的
    // console.log(arr.indexOf('2'));

    //第二个参数用于指定开始查找的位置
    // console.log(arr.indexOf(2,3));

    //lastIndexOf  是从后往前找，找不到返回-1
    // console.log(arr.lastIndexOf(2,5));

    //从最后一个字符向前查找
    // console.log(arr.lastIndexOf(2,-1));

    // console.log(arr.includes(-8));


    //自定义函数  判断在当前的数组中是否存在某个数值
    // function includes(array,item){
    //     for (const value of array) {
    //         if(item === value) return true;
    //     }
    //     return false;
    // }
    // console.log(includes([7,3,2,8,2,6],-6));


    //find   方法找到后会把值返回出来
    //如果找不到就返回 值 undefined
    // let arr = ["hdcms","houdren","hdcmss"];
    // let find = arr.find(function(item){
    //     return item == "hdcmsc";
    // });
    // console.log(typeof find)

    //数组和对象都是引用类型
    //includes
    //引用类型使用includes是查找不到的，因为引用类型的内存地址是不一样的
    // const user = [{name:'李四'},{name:'张三'},{name:'后盾人'}];
    // // console.log(user)
    // const find = user.includes({name:'张三'});
    // console.log(find)

    //使用find方法可以查找引用类型、
    // const users = [{name:'李四'},{name:'张三'},{name:'后盾人'}];
    // const find = users.find(user=>(user.name=='张三'));
    // const find = users.find(function(item){
    //     return item.name == '张三';
    // });
    // console.log(find)

    //使用findindex  查找元素并且返回索引值
    //找不到的时候返回-1
    // let arr = [7,3,2,'8',2,6];
    // console.log(arr.findIndex(function(v){
    //     return v == 2;
    // }));

    //find原理
    //使用自定义函数
    // let arr = [1,2,3,4,5];
    // function find(array,callback){
    //     for(const value of array){
    //         if(callback(value) == true){
    //             return value;
    //         }
    //     }
    //     return undefined;
    // }
    // let res = find(arr,function(item){
    //     return item == 22;
    // })
    // console.log(res)

    // 使用原型的方法实现查找
    let arr = [1,2,3,4,5];
    Array.prototype.findValue = function(callback){
        for(const value of this){
            if(callback(value) == true){
                return value;
            }
        }
        return undefined;
    }

    let re = arr.findValue(function(item){
        return item == 22;
    });
    console.log(re);

    


</script>